Computing system and method for controlling the execution of a decision process to maintain the data access efficiency upon receipt of an availability information inquiry

ABSTRACT

Computer-implemented reservation method and system. The method utilized for controlling the execution of a decision process by a computer backend machine of a computer network upon receipt of a computation inquiry includes associating to the computer backend machine a configuration file containing at least a decision rule that drives the decision process and that is computed at least from a current value of a statistical indicator and a target value of the statistical indicator; periodically obtaining an updated value of the statistical indicator; upon detection that the updated value is differing from the target value, dynamically updating the configuration file which further comprises re-computing the decision rule using the updated value as new current value, and storing in real-time the re-computed decision rule in the configuration file.

TECHNICAL FIELD

The present invention relates generally to data and informationprocessing for computer-implemented database systems and, moreparticularly, relates to a computer-implemented reservation system andmethod utilized for providing availability information in a travelreservation and booking system, such as travel seats, in connection withservice resources. More precisely, the invention addresses the real-timedecision for driving task executions by a source of data; for instance,choosing one among a plurality of data sources storing availabilityinformation data relevant to the availability requests and usinginventory links to their optimal capacity, and thus providing a highavailability service while using data sources of a lower reliability. Inaddition, the invention can also reduce failures in retrieving data froma data source and dynamically monitor and maintain the high efficiencyof data access to an availability cache source when a data sync processis being executed.

BACKGROUND

A computerized travel system is organized around a Global DistributionSystem GDS being accessed by travel vendors such as travel agencies,online travel vendors and travel companies. The GDS system may beproprietary computer systems allowing real-time access to airline fares,schedules, and seating availability and other data.

The GDS system implements an access to various data sources in order toprovide availability information. To retrieve availability information,the inventory source can be accessed by polling while other data sourcesare accessible in parallel in order to reduce the polling bandwidth,save costs (inventory database's accesses are more expensive) and cutoff response time as often as possible.

A challenge is to quickly react to a rapid variation such as a growth ofcomputation inquiries or a crisis (like a polling outage) and meanwhileto maintain the data access efficiency of data sources. It leads totechnical constraints involving routing decisions between varioussources where data relevant to reply to an availability request arepotentially stored. System must then decide in which case it is moreappropriate to use an AVS (availability status source) or a cache datasource.

SUMMARY

In one example of embodiment, a method is disclosed for controlling theexecution of a decision process by a computer backend machine of acomputer network upon receipt of a computation inquiry, comprising:

-   -   associating to the computer backend machine a configuration file        containing at least a decision rule that drives the decision        process and that is computed at least from a current value of a        statistical indicator and a target value of the statistical        indicator;    -   periodically obtaining an updated value of the statistical        indicator;    -   upon detection that the updated value is differing from the        target value, dynamically updating the configuration file which        further comprises:        -   re-computing the decision rule using the updated value as            new current value;        -   storing in real-time the re-computed decision rule in the            configuration file.

In another example of embodiment, a computerized system comprises atleast one computer backend machine configured to execute a decisionprocess upon receipt of a computation inquiry and comprising aconfiguration file containing at least a decision rule that drives thedecision process and that is computed at least from a current value of astatistical indicator and a target value of the statistical indicator,the computer backend machine comprising a processor where operation ofthe processor in accordance with a computer program stored in acomputer-readable medium causes the computerized system to:

-   -   periodically obtaining an updated value of the statistical        indicator;    -   upon detection that the updated value is differing from the        target value, dynamically updating the configuration file which        further comprises:        -   re-computing the decision rule using the updated value as            new current value;        -   storing in real-time the re-computed decision rule in the            configuration file.

Potential advantages of the present invention are:

Maintaining a high quality of service by choosing an appropriate targetdata source from several data sources including relatively low-reliableones;

Optimally using the data sources and their storage capacity;

Following and maintaining the contractual agreements, such as ServiceLevel Agreements (SLA).

The exemplary embodiments also encompass a computer-readable medium thatcontains software program instructions, where execution of the softwareprogram instructions by at least one data processor results inperformance of operations that comprise execution of the method of thepresent invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other aspects of the embodiments of the presentinvention are made more evident in the following Detailed Description,when read in conjunction with the attached Figures, wherein:

FIG. 1 is an example of an architecture diagram of an availabilityinquiry system according to a first non limiting embodiment of thepresent invention.

FIG. 2 is a linear graph presenting the values of polling error ratesm_(a) and m_(b), a polling error threshold rate g, and order valueso_(a) and o_(b).

FIG. 3 is an example of an architecture block diagram of a reservationsystem 40 according to a second non limiting embodiment of the presentinvention.

FIG. 4 is a linear graph presenting the values of look-to-book numberslb_(a) and lb_(b), a goal look-to-book number lbg, and order valueso_(c) and o_(d).

FIG. 5 is an example of an architecture block diagram of an availabilityinquiry system 70 according a third non limiting embodiment of thepresent invention.

FIG. 6 is a linear graph presenting the values of numbers of writesw_(a) and w_(b), and a goal number of writes wg.

DETAILED DESCRIPTION

Although the following description is given in the context of anapplication to the airline industry, it does not represent a limitingexample since the present invention is applicable to all sorts of traveland tourism products such as rooms, car rental, railways tickets or thelike.

Before the introduction of the present invention, certain terms used inthe following description are defined as follows:

-   -   Availability: This is the number of seats available for sale. It        is used to accept or deny further bookings.    -   Sources of availability information: this comprises all kinds of        data repositories where information connected to travel product        availability are stored.    -   Inventory source: a source of availability information which has        the best accuracy since it reflects the actual status of the        bookings made for travel products the inventory is comprised of.        In typical cases, the inventory is based at the travel carrier        side.    -   Base availability source: a source of availability information        which derives from the inventory source. It is often used at a        GDS system side to prevent systematic access to the inventory        source and save bandwidth consumption. Such data source type,        also called AVS is periodically updated from the inventory        source and is a simplified version of the inventory source. In        term of data quality, the data sources rated according to a        high, fair, or low confidence level are respectively listed as        follows: the inventory source, the availability cache source and        the AVS.    -   Availability cache source: a source of availability information        usually of lower confidence than the inventory source but with        lower usage cost. Such caches may be fed with results obtained        from past availability requests. A first user request and the        corresponding reply can thus be re-used in response to another        request. In some cases the cache is first built from responses        to pro-active requests, i.e.: requests automatically created at        server side.    -   Polling: a query sent to the inventory source for replying to a        user request.

FIGS. 1 and 2 give an example of a first embodiment of the invention. Inthe embodiment, a polling error rate of an inventory source is monitoredand utilized to drive a decision process on how to use the inventorysource. Further embodiments of the invention are depicted in FIG. 3through 6. The embodiments can be combined with each other.

FIG. 1 is an example of an architecture block diagram of an availabilityinquiry system 10 according to the present invention. In the presentembodiment, after receiving a computation inquiry, which is here anavailability request r₁, the availability inquiry system 10 candynamically choose one from at least two data sources and retrieve thecorresponding data from the chosen data source by applying a data sourceadaptation method to compute a decision rule. The data source adaptationmethod requires a polling error rate of an inventory source as an inputdata. The polling error rate represents a ratio between a number ofaccess failures and a number of access attempts to a given data source.It is used as a statistical indicator.

The availability inquiry system 10 comprises a computer backend facility11, a decision controller 12, and two data sources, an inventory source13 a and an availability cache source 13 b, respectively, such datasources are purely indicative and the invention applies to any datasources. In the present embodiment, the given data source is theinventory source 13 a. All data sources are utilized for providing astorage space to (at least temporarily) store data relating to the seatavailability. The computer backend facility 11 can be implemented by acomputer cluster consisting of a set of loosely connected computers, oronly by a single computing device. In the present embodiment, thecomputer backend facility 11 is coupled to the decision controller 12and the data sources 13 a and 13 b, respectively.

The computer backend facility 11 is utilized for executing a decisionprocess upon receipt of an availability request r₁. It comprises atleast one backend computing unit 21 and an observer 22. The observer 22is utilized for periodically generating and sending a latest pollingerror rate m₁ to the decision controller 12. The polling error rate m₁is a ratio between a number of failures in retrieving data from theinventory source 13 a and a total number of access attempts to the saidinventory source 13 a. It thus reflects the access efficiency performedfor the inventory source 13 a.

The backend computing unit 21 comprises a strategy coordinator 31 and amemory unit 32. The memory unit 32 is coupled to the strategycoordinator 31. The memory unit 32 is utilized for storing at least aconfiguration file c₁ containing at least a decision rule. The strategycoordinator 31 is utilized for executing the decision rule.

The decision controller 12 comprises a controller module 26 and acontroller memory unit 27. The controller module 26, coupled to thememory unit 27, is utilized for generating an order value o₂ which isbetween 0% and 100%. An order value, for example the order value o₂, isdefined as an access attempt rate to the inventory source 13 a. Thememory unit 27 stores at least a configuration file c₂, an order historyfile OH₁ and an observation history file OBH₁. The configuration file c₂contains a polling error threshold rate g, that is the highestacceptable inventory access failure rate, predefined by the systemadministrator for example; in the present embodiment, the polling errorthreshold rate g is set to be 20%. In addition, the decision controller12 gathers the updated values of the polling error rate m₁ at regularintervals preferably of a length under 5 minutes.

It should be noted that in other embodiments, the configuration files c₁and c₂, the order history file OH₁ and the observation history file OBH₁can be stored in a same memory unit, or in different memory units otherthan the memory unit 32 or the memory unit 27. Also the decisioncontroller 12 and the computer backend facility 11 may share somehardware and/or software resources.

The computer backend facility 11 executes a decision process in order toreach (but not exceed) the order value o₂, and switches from theinventory source 13 a (the main data source) to the availability cachesource 13 b in order to keep the polling error rate of the inventorysource 13 a not greater than the polling error threshold rate g.

The decision process requires data computed by the decision controller12. The controller module 26 determines the order value o₂ according toinformation provided by the observer 22, the configuration c₂ and theobservation history file OBH₁ stored in the memory unit 27. The detaileddescription about the data source adaptation method will be included inthe following paragraphs.

The decision controller 12 is utilized for computing the updated ordervalue o₂ related to the inventory source 13 a. It periodically obtainsthe updated polling error rate m₁ provided by the observer 22, and theprevious order value o₁ stored in the observation history file OBH₁. Itthen detects a difference between the polling error rate m₁ and thepolling error threshold rate g provided by the configuration file c₂.The decision controller 12 generates the order value o₂ by applying afirst response function which will be presented in the followingparagraphs.

There are three cases of the value comparison between the polling errorrate m₁ and the polling error threshold rate g:

-   -   The polling error rate m₁ is equal to the polling error        threshold rate g: The computer backend facility 11 remains to        access to the inventory source 13 a as before and doesn't need        to change the order value that will be applied to decision        rules.    -   The polling error rate m₁ is smaller than the polling error        threshold rate g: It means that the number of data retrieving        requests received by the inventory source 13 a is less than its        maximum capacity of access. The computer backend facility 11 can        more access to the inventory source 13 a. The updated order        value o₂ is greater than the previous order value o₁.    -   The polling error rate m₁ is bigger than the polling error        threshold rate g: It means that the number of data retrieving        requests received by the inventory source 13 a is already        greater than its maximum capacity of access. The updated order        value o₂ is less than the previous order value o₁.

As mentioned above, the controller module 26 generates the order valueo₂ by applying the first response function which calculates on theprevious order value o₁, the polling error threshold rate g, the historyof order values (recorded in OH₁) and the history of observations(recorded in OBH₁). The first response function can be presented as, butnot limited to, the following example formula: o₂=o₁×e^((g-m) ¹ ⁾.

The order value o₂ is then regulated if one of the following conditionsoccurs:

-   -   If the updated order value o₂ is greater than 100%, the updated        order value o₂ is set to be 100%.    -   If the updated order value o₂ is smaller than a predefined        minimum order value, the updated order value o₂ is set to be the        minimum order value stored in the configuration file c₂.

The controller module 26 stores the order value o₂ to the order historyfile OH₁, which will become the new value of the order value o₁ utilizedin the next computation.

After receiving the updated order value o₂, the backend computing unit21 re-computes the decision rule, including a data source selection rulefor determining the data source among the inventory source 13 a and theavailability cache source 13 b for retrieving data to be used for theavailability request r₁. In all embodiments, the data source selectionrule may be also a function of at least one characteristic of anavailability request, such as the originator of the availability requestor a parameter of the availability request, such as a market (it can bea journey origin and/or a destination, or the airline code of theprovider in the travel industry.)

The detailed description about updating the data source selection rulegiven the updated order value o₂ is provided as follows:

-   -   If the updated order value o₂ is greater than the previous order        value o₁, the data source selection rule is updated with a        higher level of access, based on the rules stored in the        configuration file c₁. Said stored rules will take the updated        order value o₂ and some characteristics of the request r₁ (eg:        airline, product) which will be sent to the chosen data source        to use.    -   If the updated order value o₂ is smaller than the previous order        value o₁, it means the inventory source 13 a previously got too        many data retrieving requests, relative to its maximum capacity        of access. The computer backend facility 11 needs to lower down        the order value from the value o₁ to the value o₂ to reduce the        polling error rate of the inventory 13 a and the data source        selection rule is updated with a lower level of access. If the        updated order value o₂ lowers and is close to 0, the computer        backend facility 11 will be guided by the data source selection        rule and thus switch to retrieve data from the availability        cache source 13 b to process the largest part of the requests.

After obtaining necessary data retrieved from the chosen data source,the computer backend facility 11 generates an availability reply p₁corresponding to the availability request r₁.

The above re-computed decision rule is stored in real-time in theconfiguration file c₁. The updating of the configuration file c₁ can beexecuted independently from applying the configuration file c₁ for anyavailability requests received by the computer backend facility 11.Furthermore, it should be noted that in other embodiments, in additionto the inventory source 13 a and the availability cache source 13 b, theavailability inquiry system 10 may comprise more than two data sources,such as an AVS source. In this case, if the availability cache source isselected but it is empty or it does not answer in time, the AVS sourcewill be selected. In addition, there can be a plurality of pollingsources selected among a dynamic availability polling source, a directaccess polling source and an availability calculator source.

Turning now to FIG. 2, FIG. 2 is a linear graph presenting the values ofpolling error rates m_(a) and m_(b), a polling error threshold rate g,and order values o_(a) and o_(b). The polling error rate m_(a) and theorder value o_(a) are recorded before the execution of the data sourceadaptation method. The polling error rate m_(b) and the order valueo_(b) are recorded during the execution of the data source adaptationmethod according to the present invention.

During the observation period, by executing the data source adaptationmethod, the availability inquiry system 10 efficiently reduces thepolling error rate of the inventory source 13 a from the value m_(a) tothe value m_(b), which steadily approximates to the polling errorthreshold rate g. In addition, the order value performed for theinventory source 13 a is reduced from the value o_(a) to the value o_(b)because the availability inquiry system 10 adjusts in real-time thenumber of access attempts to the inventory source 13 a by dynamicallycomputing the order value of the inventory source 13 a when receivingnew observations.

FIG. 3 shows another embodiment where look-to-book considerations areused to drive the decision process. FIG. 3 is an example of anarchitecture block diagram of a reservation system 40 according to thepresent invention. The structure of the reservation system 40 and itsfunctions are similar to those of the above-mentioned availabilityinquiry system 10 of the above-mentioned embodiment. However, thedecision process executed by the reservation system 40 requires alook-to-book number as an input data to be used as a statisticalindicator. While retrieving data from an inventory source 43 a, thelook-to-book number indicates the average number of availabilityrequests received by the reservation system 40 involving an access to agiven data source for making a conversion into a booking (eg, a seatreservation). An example of 700 “looks” for 1 “book” is used below.

In the present embodiment, after receiving an availability request r₂,the reservation system 40 can dynamically choose one from at least twodata sources and retrieve the corresponding data from the chosen datasource by applying a data source adaptation method to compute a decisionprocess.

The reservation system 40 comprises a computer backend facility 41, adecision controller 42, and two data sources, an inventory source 43 aand an availability cache source 43 b, respectively, such data sourcesare purely indicative and the invention applies to any data source. Inthe present embodiment, the given data source is the inventory source 43a. The computer backend facility 41 is coupled to the decisioncontroller 42 and the data sources 43 a and 43 b, respectively.

The computer backend facility 41 is utilized for executing a decisionprocess upon receipt of an availability request r₂. It comprises atleast one backend computing unit and an observer 52. The observer 52 isutilized for periodically generating and sending a latest look-to-booknumber lb₁ to the decision controller 42. The smaller the look-to-booknumber lb₁ is, the more orders can be processed while retrieving thecorresponding data from the inventory source 43 a, keeping a giveninventory source usage efficiency. A small look-to-book number reflectsa good efficiency of the inventory source since its access rate is lowcompared to the conversion of availability requests into bookings. (Alook-to-book conversion rate takes into account only the looks to theinventory source 43 a against the bookings made by the reservationsystem 40.)

The backend computing unit 51 comprises a strategy coordinator 61 and amemory unit 62. The memory unit 62 is coupled to the strategycoordinator 61. The memory unit 62 is utilized for storing at least aconfiguration file c₃ containing at least a decision rule. The strategycoordinator 61 is utilized for executing the decision rule.

The decision controller 42 comprises a controller module 56 and acontroller memory unit 57. The controller module 56, coupled to thememory unit 57, is utilized for generating an order value o₄, which isbetween 0% and 100%. An order value, for example the order value o₄, isdefined as an access attempt rate to the inventory source 43 a. Thedecision controller 42 generates the order value o₄ by applying a secondresponse function which will be presented in the following paragraphs.

The memory unit 57 stores at least a configuration file c₄, an orderhistory file OH₂ and an observation history file OBH₂. The configurationfile c₄ contains a goal look-to-book number lbg set by the systemadministrator to be 700 for example, and a look-to-book conversion rateis thus 700:1 in the present embodiment. In addition, the decisioncontroller 42 gathers the updated values of the look-to-book number lb₁at regular intervals of a length under 5 minutes, and computes a globallook-to-book conversion rate which is computed as an integration since agiven point in time, for example, the start of a day.

It should be noted that in other embodiments, the configuration files c₃and c₄, the order history file OH₂ and the observation history file OBH₂can be stored in a same memory unit, or in different memory units otherthan the memory unit 62 or the memory unit 57.

The computer backend facility 41 executes a decision process in order todecide the order value o₄, and switch from the inventory source 43 a(the main data source) to the availability cache source 43 b if theincoming availability requests in order to keep the look-to-book numbercorresponding to the inventory source 43 a not greater than the goallook-to-book number lbg.

The decision process requires data computed by the decision controller42. The controller module 56 determines the order value o₄ according toinformation provided by the observer 52, the configuration c₄ and theobservation history file OBH₂ stored in the memory unit 57. The detaileddescription about the data source adaptation method will be included inthe following paragraphs.

The decision controller 42 is utilized for computing the updated ordervalue o₄ related to the inventory source 43 a. It periodically obtainsthe updated look-to-book number lb₁ provided by the observer 52, and theprevious order value o₃ stored in the order history file OH₂. It thendetects a difference between the look-to-book number lb₁ and the goallook-to-book number lbg provided by the configuration file c₄.

There are three cases of the value comparison between the look-to-booknumber lb₁ and the goal look-to-book number lbg:

-   -   The look-to-book number lb₁ is equal to the goal look-to-book        number lbg: The computer backend facility 41 remains to access        as before to the inventory source 43 a and doesn't need to        change the order value that will be applied to decision rules.        However, if more orders are to be made, the computer backend        facility 41 switches to access to the availability cache source        43 b for retrieving data.    -   The look-to-book number lb₁ is smaller than the goal        look-to-book number lbg:        -   The computer backend facility 41 can thus continue accessing            to the inventory source 43 a for retrieving data. The            updated order value o₄ is greater than the previous order            value o₃.    -   The look-to-book number lb₁ is bigger than the goal look-to-book        number lbg:        -   It means that currently for making a conversion into a            booking, the inventory source 43 a already receives too many            data retrieving requests. The computer backend facility 41            switches thus more frequently to access to the availability            cache source 43 b for retrieving data. The updated order            value o₄ is less than the previous order value o₃.

As mentioned above, The controller module 56 generates the updated ordervalue o₄ by applying the second response function which calculates onthe previous order value o₃, the goal look-to-book number lbg, thehistory of order values (recorded in OH₂) and the history ofobservations (recorded in OBH₂). The second response function can bepresented as, but not limited to, the following example formula:o₄=o₃×e^((lbr) ¹ ^(-lgbr)), wherein the variable lgbr is a ratiocalculated based on the goal look-to-book number lbg while the variablelbr₁ is a ratio calculated based on the look-to-book number lb₁.

Like the order value o₂ of the availability inquiry system 10, the ordervalue o₄ is then regulated if one of the following conditions occurs:

-   -   If the updated order value o₄ is greater than 100%, the updated        order value o₄ is set to be 100%.    -   If the updated order value o₄ is smaller than a predefined        minimum order value, the updated order value o₄ is set to be the        minimum order value stored in the configuration file c₁.

The controller module 56 stores the order value o₄ to the order historyfile OH₂, which will become the new value of the order value o₃ utilizedin the next computation.

After receiving the updated order value o₄, the backend computing unit21 re-computes the decision rule, including a data source selection rulefor determining the data source among the inventory source 43 a and theavailability cache source 43 b for retrieving data to be used for theavailability request r₂. The data source selection rule may also be afunction of at least one characteristic of an availability request.

After obtaining necessary data retrieved from the chosen data source,the computer backend facility 41 generates an availability reply p₂corresponding to the availability request r₂.

The above re-computed decision rule is stored in real-time in theconfiguration file c₃. The updating of the configuration file c₃ can beexecuted independently from applying the configuration file c₃ for anyavailability requests received by the computer backend facility 41.Furthermore, it should be noted that in other embodiments, in additionto the inventory source 43 a and the availability cache source 43 b, thereservation system 40 may comprise more than two data sources, such asan availability status source. In addition, there can be a plurality ofpolling sources selected among a dynamic availability polling source, adirect access polling source and an availability calculator source.

FIG. 4 is a linear graph presenting the values of look-to-book numberslb_(a) and lb_(b), a goal look-to-book number lbg, and order valueso_(b) and o_(d). The look-to-book number lb_(a) and the order valueo_(c) are recorded without the execution of the data source adaptationmethod. The look-to-book number lb_(b) and the order value o_(d) arerecorded with the execution of the data source adaptation methodaccording to the present invention.

By executing the data source selection rule update process according tothe present invention, the reservation system 40 makes the look-to-booknumber corresponding to the inventory source 43 a approximate to thegoal look-to-book number lbg at the end of each aggregation period, suchas a daily integration), in order to adjust in real-time the number ofaccess attempts to retrieving data from the inventory source 43 a.

FIG. 5 is an example of an architecture block diagram of an availabilityinquiry system 70 according to the present invention. In the presentembodiment, after receiving an availability request r₃, the availabilityinquiry system 70 retrieves availability data from at least two datasources to generate an availability reply p₃ corresponding to theavailability request r₃. It further executes a data sync method to keepthe data consistency among the data sources, one of which is here anavailability cache source 73 b. The decision process requires a numberof writes w₁ of the availability cache source 73 b as an input data,which is used as a statistical indicator.

The availability inquiry system 70 comprises a computer backend facility71, a decision controller 72, and two data sources, an inventory source73 a and a cache database 73 b, respectively, such data sources arepurely indicative and the invention applies to any data sources. Thecomputer backend facility 71 is coupled to the decision controller 72and the data sources 73 a and 73 b, respectively.

The computer backend facility 71 is utilized for executing a data syncmethod to update data stored in the availability cache source 73 b. Itcomprises at least one backend computing unit and an observer 82. Theobserver 82 is utilized for periodically sending a latest number ofwrites w₁, performed for the availability cache source 73 b, to thedecision controller 72. The detailed description about the data syncmethod will be included in the following paragraphs.

The backend computing unit 81 comprises an availability engine 91 and amemory unit 92. The memory unit 92 is coupled to the availability engine91. The memory unit 92 is utilized for storing at least a configurationfile c₅ containing at least a decision rule. The availability engine 91is utilized for executing the decision rule with applying an order syncrate o₆, which represents a percentage of updated availability data tobe replicated from the inventory source 73 a to the availability cachesource 73 b.

The decision controller 72 comprises a controller module 86 and acontroller memory unit 87. The controller module 86, coupled to thememory unit 87, is utilized for generating the order sync rate o₆. Thememory unit 87 stores at least a configuration file c₆, an order historyfile OH₃ and an observation history file OBH₃. The configuration file c₆contains a goal number of writes wg set by the system administrator, forinstance, a maximum capacity of access to the availability cache source73 b; in the present embodiment, the goal number of writes wg is set tobe 500000. In addition, the decision controller 72 gathers the updatedvalues of the number of writes w₁ at regular intervals preferably of alength under 5 minutes.

It should be noted that in other embodiments, the configuration files c₅and c₆, the order sync history file OSH and the observation history fileOBH₃ can be stored in a same memory unit, or in different memory unitsother than the memory unit 92 or the memory unit 87. Also the decisioncontroller 72 and the computer backend facility 71 may share somehardware and/or software resources.

The computer backend facility 71 executes a decision process in order toreach (but not exceed) the order sync rate o₆. The decision processrequires data computed by the decision controller 72. The decisioncontroller 72 is utilized for computing the order sync rate o₆. Itperiodically obtains the updated number of writes w₁ provided by theobserver 82, and the previous order sync rate o₅ stored in the ordersync history file OSH. It then detects a difference between the numberof writes w₁ and the goal number of writes wg provided by theconfiguration file c₆.

The controller module 86 generates the updated order sync rate o₆ basedon a third response function which calculates on the goal number ofwrites wg and the number of writes w₁, and stores the order sync rate o₆to the order sync history file OSH. The third response function ispresented as, but not limited to, the following formula: o₆=wg/w₁. Thecontroller module 86 also provides the order sync rate o₆ to thecomputer backend facility 71 to ensure that the availability cachesource 73 b will not exceed its maximum capacity of access.

There are three cases of the value comparison between the number ofwrites w₁ and the goal number of writes wg:

-   -   The number of writes w₁ is equal to the goal number of writes        wg: The computer backend facility 71 remains the same sync rate        o₆ to replicate updated availability data from the inventory        source 73 a to the availability cache source 73 b. The number of        writes w₂ is set to be the value of the goal number of writes        wg.    -   The number of writes w₁ is bigger than the goal number of writes        wg: The number of writes performed for the availability cache        source 73 b may be greater than its maximum capacity of access.        It means that the computer backend facility 71 need to reduce        data replication writes from the inventory source 73 a to the        availability cache source 73 b. The number of writes w₂ is set        to be the value of the goal number of writes wg.    -   The number of writes w₁ is smaller than the goal number of        writes wg: It means that the computer backend facility 71 can        perform more data replication writes from the inventory source        73 a to the availability cache source 73 b. The number of writes        w₂ is set to be the value of the number of writes w₁.

After receiving the updated order sync rate o₆, the computer backendfacility 71 recomputes the decision rule, including a cache writethrottling rule.

Turning now to FIG. 6, FIG. 6 is a linear graph presenting the values ofnumbers of writes w_(a) and w_(b), and a maximum number of writes wg.The number of writes w_(a) is recorded without the execution of the datasync method. The number of writes w_(b) is recorded with the executionof the data sync method according to the present invention. In addition,during the observation period, by executing the data sync method, theavailability inquiry system 70 efficiently reduces the write overload ofthe availability cache source 73 b.

Exemplary embodiments of the invention are summarized hereafter; theycan each be used independently or in combination with at least anotherexemplary embodiment of the invention:

-   -   The invention comprises using the configuration file for any        computation inquiry received by the computer backend machine        independently from the updating of the configuration file.    -   The at least one decision rule comprises data source selection        rule providing a logic configured to determine a data source        among plural data sources accessible for retrieving data to be        used for the computation inquiry.    -   The data source selection rule is a function of at least one        characteristic of the computation inquiry.    -   The computation inquiry is a flight availability computation        inquiry, and where the data source selection rule is an        availability data source selection rule, and where the plural        data sources comprise at least two of: a polling source, an        availability status source (AVS), an availability cache source.    -   The plural data sources comprise at least one polling source        selected among a dynamic availability polling source, a direct        access polling source and an availability calculator source, and        comprising using, as statistical indicator for determining the        availability data source selection rule, a ratio between a        number of failures in retrieving data from the polling source        and a total number of access attempts to said polling source.    -   The plural data sources comprise at least one polling source        selected among a dynamic polling source, a direct access polling        source and an availability calculator source, the method        comprising using, as statistical indicator for determining the        availability data source selection rule, a look-to-book ratio of        an originator of the computation inquiry.    -   The at least one decision rule comprises a cache writing        decision rule providing a logic of whether to write in an        availability cache source a replication of data obtained from a        remote data source such as an inventory source also called        polling source.    -   The cache writing decision rule is a function of at least one        characteristic of the computation inquiry.    -   The invention comprises using a number of cache writings as        statistical indicator for determining the cache writing decision        rule.    -   The computation inquiry requires the execution of a data read or        write instruction in a data source and where the decision        process is for deciding on whether a given data source is to be        accessed by the computer backend machine for the execution of        the data read or write instruction.    -   The invention comprises: 1) defining an order level of read or        write instructions to be executed by the given data source; this        order level may be a proportion of instructions to be sent by        the given data source; and 2) computing the decision rule so as        to reach or stay below the order level.    -   The invention comprises, upon the updated value of the        statistical indicator differing from the target value of the        statistical indicator, computing an updated value of the order        level based on the product of a current value of the order level        with an exponential function of a difference between the target        value of the statistical indicator and the updated value of the        statistical indicator, and re-computing the decision rule so as        to reach the updated value of the order level.    -   The invention comprises periodically gathering the updated        values of the statistical indicator at regular intervals of a        length under 5 minutes.    -   A computer program product stored in non-transitory        computer-readable medium and comprising instructions adapted to        perform the method of the invention    -   The invention comprises plural data sources accessible for        retrieving data to be used for the computation inquiry and a        network for bilateral communication between the computer backend        machine and the plural data source.

The foregoing description has provided by way of exemplary andnon-limiting examples a full and informative description of variousmethod, apparatus and computer program software for implementing theexemplary embodiments of this invention. However, various modificationsand adaptations may become apparent to those skilled in the relevantarts in view of the foregoing description, when read in conjunction withthe accompanying drawings and the appended claims. As but some examples,the use of other similar or equivalent processes or algorithms and datarepresentations may be attempted by those skilled in the art. Further,the various names used for the different elements, functions andalgorithms (e.g., etc.) are merely descriptive and are not intended tobe read in a limiting sense, as these various elements, functions andalgorithms can be referred to by any suitable names. All such andsimilar modifications of the teachings of this invention will still fallwithin the scope of the embodiments of this invention.

Furthermore, while described above primarily in the context of travelsolutions provided by airlines (air carriers), those skilled in the artshould appreciate that the embodiments of this invention are not limitedfor use only with airlines, but could be adapted as well for use withother types of travel modalities and travel providers including, asnon-limiting examples, providers of travel by ship, train, motorcar, busand travel products such as hotels.

Furthermore, some of the features of the exemplary embodiments of thepresent invention may be used to advantage without the corresponding useof other features. As such, the foregoing description should beconsidered as merely illustrative of the principles, teachings andembodiments of this invention, and not in limitation thereof.

Embodiments of the various techniques described herein may beimplemented in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations of them. Embodiments may beimplemented as a computer program product, i.e., a computer programtangibly embodied in an information carrier, e.g., in a machine-readablestorage device or in a propagated signal, for execution by, or tocontrol the operation of, data processing apparatus, e.g., aprogrammable processor, a computer, or multiple computers. A computerprogram, such as the computer program(s) described above, can be writtenin any form of programming language, including compiled or interpretedlanguages, and can be deployed in any form, including as a stand-aloneprogram or as a module, component, subroutine, or other unit suitablefor use in a computing environment. A computer program can be deployedto be executed on one computer or on multiple computers at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. Elements of a computer may include atleast one processor for executing instructions and one or more memorydevices for storing instructions and data. Generally, a computer alsomay include, or be operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks.

Embodiments may be implemented in a computing system that includes aback-end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront-end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user can interact with animplementation, or any combination of such back-end, middleware, orfront-end components. Components may be interconnected by any form ormedium of digital data communication, e.g., a communication network.Examples of communication networks include a local area network (LAN)and a wide area network (WAN), e.g., the Internet.

The program code embodying the software program instructions of variousexemplary embodiments described herein is capable of being distributedas a program product in a variety of different forms. In particular, theprogram code may be distributed using a computer readable media, whichmay include computer readable storage media and communication media.Computer readable storage media, which is inherently non-transitory, mayinclude volatile and non-volatile, and removable and non-removabletangible media implemented in any method or technology for storage ofinformation, such as computer-readable instructions, data structures,program modules, or other data. Computer readable storage media mayfurther include RAM, ROM, erasable programmable read-only memory(EPROM), electrically erasable programmable read-only memory (EEPROM),flash memory or other solid state memory technology, portable compactdisc read-only memory (CD-ROM), or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium that can be used to store thedesired information and which can be read by a computer. Communicationmedia may embody computer readable instructions, data structures orother program modules. By way of example, and not limitation,communication media may include wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the above mayalso be included within the scope of computer readable media.

While certain features of the described implementations have beenillustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritand the scope of the embodiments of the invention.

What is claimed is:
 1. A method for controlling the execution of adecision process by a computer backend machine of a computer networkupon receipt of a computation inquiry, comprising: associating to thecomputer backend machine a configuration file containing at least adecision rule that drives the decision process and that is computed atleast from a current value of a statistical indicator and a target valueof the statistical indicator; periodically obtaining an updated value ofthe statistical indicator; upon detection that the updated value isdiffering from the target value, dynamically updating the configurationfile which further comprises: re-computing the decision rule using theupdated value as new current value; storing in real-time the re-computeddecision rule in the configuration file.
 2. The method of claim 1comprising using the configuration file for any computation inquiryreceived by the computer backend machine independently from the updatingof the configuration file.
 3. The method of claim 1 where the at leastone decision rule comprises data source selection rule providing a logicconfigured to determine a data source among plural data sourcesaccessible for retrieving data to be used for the computation inquiry.4. The method of claim 3 where the data source selection rule is afunction of at least one characteristic of the computation inquiry. 5.The method of claim 3 where the computation inquiry is a flightavailability computation inquiry, and where the data source selectionrule is an availability data source selection rule, and where the pluraldata sources comprise at least two of: a polling source, an availabilitystatus source (AVS), an availability cache source.
 6. The method ofclaim 5 where the plural data sources comprise at least one pollingsource selected among a dynamic availability polling source, a directaccess polling source and an availability calculator source, andcomprising using, as statistical indicator for determining theavailability data source selection rule, a ratio between a number offailures in retrieving data from the polling source and a total numberof access attempts to said polling source.
 7. The method of claim 5where the plural data sources comprise at least one polling sourceselected among a dynamic polling source, a direct access polling sourceand an availability calculator source, the method comprising using, asstatistical indicator for determining the availability data sourceselection rule, a look-to-book ratio of an originator of the computationinquiry.
 8. The method of claim 5 where the at least one decision rulecomprises a cache writing decision rule providing a logic of whether towrite in an availability cache source a replication of data obtainedfrom a remote data source.
 9. The method of claim 8 where the cachewriting decision rule is a function of at least one characteristic ofthe computation inquiry.
 10. The method of claim 8 comprising using anumber of cache writings as statistical indicator for determining thecache writing decision rule.
 11. The method of claim 1 where thecomputation inquiry requires the execution of a data read or writeinstruction in a data source and where the decision process is fordeciding on whether a given data source is to be accessed by thecomputer backend machine for the execution of the data read or writeinstruction.
 12. The method of claim 11 comprising: defining an orderlevel of read or write instructions to be executed by the given datasource; computing the decision rule so as to reach or stay below theorder level.
 13. The method of claim 12 comprising, upon the updatedvalue of the statistical indicator differing from the target value ofthe statistical indicator, computing an updated value of the order levelbased on the product of a current value of the order level with anexponential function of a difference between the target value of thestatistical indicator and the updated value of the statisticalindicator, and re-computing the decision rule so as to reach the updatedvalue of the order level.
 14. The method of claim 1 where periodicallygathering the updated values of the statistical indicator is operated atregular intervals of a length under 5 minutes.
 15. A computer programproduct stored in a computer-readable medium and comprising instructionsadapted to perform the method of claim
 1. 16. A computerized systemcomprising at least one computer backend machine configured to execute adecision process upon receipt of a computation inquiry and comprising aconfiguration file containing at least a decision rule that drives thedecision process and that is computed at least from a current value of astatistical indicator and a target value of the statistical indicator,the computerized system comprising a processor where operation of theprocessor in accordance with a computer program stored in anon-transitory computer-readable medium causes the computerized systemto: periodically obtaining an updated value of the statisticalindicator; upon detection that the updated value is differing from thetarget value, dynamically updating the configuration file, which furthercomprises: re-computing the decision rule using the updated value as newcurrent value; storing in real-time the re-computed decision rule in theconfiguration file.
 17. The computerized system of claim 16 comprisingplural data sources accessible for retrieving data to be used for thecomputation inquiry and a network for bilateral communication betweenthe computer backend machine and the plural data source.